// Keywords: quantitative trait, polygenic selection

initialize() {
	initializeMutationRate(1e-7);
	initializeMutationType("m1", 0.5, "f", 0.0);  // neutral
	initializeMutationType("m2", 0.5, "f", 0.0);  // QTLs
	m2.convertToSubstitution = F;
	m2.color = "red";
	initializeGenomicElementType("g1", m1, 1);
	initializeGenomicElementType("g2", m2, 1);
	initializeGenomicElement(g1, 0, 20000);
	initializeGenomicElement(g2, 20001, 30000);
	initializeGenomicElement(g1, 30001, 99999);
	initializeRecombinationRate(1e-8);
}
1 early() { sim.addSubpop("p1", 500); }
fitnessEffect() {
	phenotype = sum(individual.genomes.countOfMutationsOfType(m2));
	return 1.5 - (phenotype - 10.0)^2 * 0.005;
}
5000 late() {
	print(sim.mutationFrequencies(NULL, sim.mutationsOfType(m2)));
}
